package com.music.model;
//package Music;
//import java.io.File;
//import java.io.FileInputStream;
//import java.io.FileNotFoundException;
//import java.io.IOException;
//
///**
// * Class allowing the recovery of characteristics of files mp3 
// * @author antho
//
//	ID3v1: 128 bytes
//	Field 		Length 	Description
//	
//	header 		3 		"TAG"
//	title 		30 		30 characters of the title
//	artist 		30 		30 characters of the artist name
//	album 		30 		30 characters of the album name
//	year 		4 		A four-digit year
//	comment 	28||30	The comment.
//	zero-byte 	1 		If a track number is stored, this byte contains a binary 0.
//	track	 	1 		The number of the track on the album, or 0. Invalid, if previous byte is not a binary 0.
//	genre 		1 		Index in a list of genres, or 255
//	
//	Extended tag (placed before the ID3v1 tag): 227 bytes
//	Field 		Length 	Description
//	
//	header 		4 		"TAG+"
//	title 		60 		Next 60 characters of the title (90 characters total)
//	artist 		60 		Next 60 characters of the artist name
//	album 		60 		Next 60 characters of the album name
//	speed 		1 		0=unset, 1=slow, 2= medium, 3=fast, 4=hardcore
//	genre 		30 		A free-text field for the genre
//	start-time 	6 		the start of the music as mmm:ss
//	end-time 	6 		the end of the music as mmm:ss
// */
//
//public class Tags_mauvais implements Data{
//
//	private boolean tagv1;	//true if the track have id3tagV1 else false
//	private boolean tagv2;	//true if the track have id3tagV2 else false
//	private int size;		//size of the track
//	private byte[] tag;		//array of byte which contains the end of the mp3 file
//
//	////////////////////////////////////////////////////////////////////////////////////////
//	////////								CONSTRUCTOR								////////						
//	////////////////////////////////////////////////////////////////////////////////////////
//
//	/**
//	 * Constructor
//	 */
//	public Tags_mauvais() {
//		//355 ou 128 (v2 / v1)
//		this.tag = new byte[128];	//A MODIFIER POUR ID3TAG V2	
//	}
//	
//	////////////////////////////////////////////////////////////////////////////////////////
//	////////	  							METHODS								    ////////						
//	////////////////////////////////////////////////////////////////////////////////////////
//
//	/**
//	 * @param src : audio file
//	 * @return true if audio file have tags else retrun false
//	 */
//	public boolean openMp3(File src) {
//		FileInputStream mp3 = null;
//		try {
//			mp3 = new FileInputStream(src);
//			this.size = mp3.available();
//			mp3.skip(this.size-128);	//A MODIFIER POUR ID3TAGV2
//			mp3.read(this.tag);
//			if((this.tag[0]=='T')&&(this.tag[1]=='A')&&(this.tag[2]=='G'))
//				this.tagv1 = true;
//			else
//				if((this.tag[0]=='T')&&(this.tag[1]=='A')&&(this.tag[2]=='G')&&(this.tag[3]=='+'))	//A MODIFIER POR ID3TAG V2
//					this.tagv2 = true;
//			mp3.close();
//		} 
//		catch (FileNotFoundException e) {e.printStackTrace();}
//		catch (IOException e) {e.printStackTrace();}
//		return (this.tagv1 || this.tagv2);
//	}
//	
//	////////////////////////////////////////////////////////////////////////////////////////
//	////////							GETTER SETTER								////////						
//	////////////////////////////////////////////////////////////////////////////////////////
//
//	/**
//	 * @return the title of a track
//	 */
//	public String getTitle(){
//		int pos = 0;
//		byte[] result;
//		int i=0;
//		if(this.tagv1){
//			result = new byte[TAG_POSITION[pos+1] - TAG_POSITION[pos]];
//			for (int j=TAG_POSITION[pos]; j<TAG_POSITION[pos+1]; j++){
//				result[i] = this.tag[j];
//				i++;
//			}
//		}
//		else if(this.tagv2){
//			result = new byte[TAG2_POSITION[pos+1] - TAG2_POSITION[pos]];
//			for (int j=TAG2_POSITION[pos]; j<TAG2_POSITION[pos+1]; j++){
//				result[i] = this.tag[j];
//				i++;
//			}
//		}
//		else
//			return Data.unknow;
//		String str_result = new String(result);
//		int endTag = str_result.indexOf(0);
//		if (endTag > 0)
//			str_result = str_result.substring(0, endTag);
//		return str_result;
//	}
//	
//	/**
//	 * @return the artist of the track
//	 */
//	public String getArtist(){
//		int pos = 1;
//		byte[] result;
//		int i=0;
//		if(this.tagv1){
//			result = new byte[TAG_POSITION[pos+1] - TAG_POSITION[pos]];
//			for (int j=TAG_POSITION[pos]; j<TAG_POSITION[pos+1]; j++){
//				result[i] = this.tag[j];
//				i++;
//			}
//		}
//		else if(this.tagv2){
//			result = new byte[TAG2_POSITION[pos+1] - TAG2_POSITION[pos]];
//			for (int j=TAG2_POSITION[pos]; j<TAG2_POSITION[pos+1]; j++){
//				result[i] = this.tag[j];
//				i++;
//			}
//		}
//		else
//			return "Artiste ".concat(Data.unknow);
//		String str_result = new String(result);
//		int endTag = str_result.indexOf(0);
//		if (endTag > 0)
//			str_result = str_result.substring(0, endTag);
//		return str_result;
//	}
//	
//	/**
//	 * @return the album of the track
//	 */
//	public String getAlbum(){
//		int pos = 2;
//		byte[] result;
//		int i=0;
//		if(this.tagv1){
//			result = new byte[TAG_POSITION[pos+1] - TAG_POSITION[pos]];
//			for (int j=TAG_POSITION[pos]; j<TAG_POSITION[pos+1]; j++){
//				result[i] = this.tag[j];
//				i++;
//			}
//		}
//		else if(this.tagv2){
//			result = new byte[TAG2_POSITION[pos+1] - TAG2_POSITION[pos]];
//			for (int j=TAG2_POSITION[pos]; j<TAG2_POSITION[pos+1]; j++){
//				result[i] = this.tag[j];
//				i++;
//			}
//		}
//		else
//			return "Album ".concat(Data.unknow);
//		String str_result = new String(result);
//		int endTag = str_result.indexOf(0);
//		if (endTag > 0)
//			str_result = str_result.substring(0, endTag);
//		return str_result;
//	}
//
//	
//	/**
//	 * @return the year of the album
//	 */
//	public int getYear(){
//		int pos = 3;
//		byte[] result;
//		int i=0;
//		if(this.tagv1){
//			result = new byte[TAG_POSITION[pos+1] - TAG_POSITION[pos]];
//			for (int j=TAG_POSITION[pos]; j<TAG_POSITION[pos+1]; j++){
//				result[i] = this.tag[j];
//				i++;
//			}
//		}
//		else
//			return -1;
//		int y = 0;
//		try {
//			y = Integer.valueOf(new String(result));
//		} catch (NumberFormatException e) {}
//		return y;
//	}
//
//	
//	/**
//	 * @return comments on the track
//	 */
//	public String getComment(){
//		int pos = 4;
//		byte[] result;
//		int i=0;
//		if(this.tagv1){
//			result = new byte[TAG_POSITION[pos+1] - TAG_POSITION[pos]];
//			for (int j=TAG_POSITION[pos]; j<TAG_POSITION[pos+1]; j++){
//				result[i] = this.tag[j];
//				i++;
//			}
//		}
//		else
//			return "";
//		String str_result = new String(result);
//		int endTag = str_result.indexOf(0);
//		if (endTag > 0)
//			str_result = str_result.substring(0, endTag);
//		return str_result;
//	}
//
//	
//	/**
//	 * @return the number of the track
//	 */
//	public int getTrack(){
//		return (this.tagv1 && (this.tag[TAG_POSITION[5]] == 0)) ? this.tag[TAG_POSITION[6]] : 0;
//	}
//
//	
//	/**
//	 * @return the play speed of the track
//	 */
//	public String getSpeed(){
//		return (this.tagv2) ? SPEED[tag[TAG2_POSITION[3]]] : "Unset";
//	}
//	
//	/**
//	 * @return the time of the track
//	 */
//	public String getTime(){
//		byte[] result, result2;
//		int i=0;
//		if(this.tagv2){
//			result = new byte[6];
//			result2 = new byte[6];
//			for (int j=221; j<227; j++){
//				result[i] = this.tag[j];
//				i++;
//			}
//			for (int j=227; j<235; j++){
//				result2[i] = this.tag[j];
//				i++;
//			}
//			String val = new String(result);
//			return val.concat(new String(result2));
//		}
//		else
//			return "0";
//	}
//
//	
//	/**
//	 * @return the genre of the track
//	 */
//	public String getGenre(){
//		byte[] result;
//		int i=0;
//		if(this.tagv1){
//			Byte indice;
//			indice = tag[TAG_POSITION[7]];
//			if(indice >= 0)
//				if(Integer.parseInt(Byte.toString(indice)) < 126)
//					return GENRE[Integer.parseInt(Byte.toString(indice))];
//			return GENRE[126];
//		}
//		else if(this.tagv2){
//			int pos = 4;
//			result = new byte[TAG2_POSITION[pos+1] - TAG2_POSITION[pos]];
//			for (int j=TAG2_POSITION[pos]; j<TAG2_POSITION[pos+1]; j++){
//				result[i] = this.tag[j];
//				i++;
//			}
//			String str_result = new String(result);
//			int endTag = str_result.indexOf(0);
//			if (endTag > 0)
//				str_result = str_result.substring(0, endTag);
//			return str_result;
//		}
//		else
//			return GENRE[126];
//	}
//	
//	
//	/**
//	 * @return the file size
//	 */
//	public int getSize(){
//		return this.size;
//	}
//	
//	/**
//	 * @param file : file that we want to know it extention
//	 * @return the extention of the file
//	 */
//	public String getExtention(String file){
//		int i = file.length()-1;
//		while(file.charAt(i) != '.')
//			i--;
//		return file.substring(i+1);
//	}
//	
//	////////////////////////////////////////////////////////////////////////////////////////
//	////////								AFFICHAGE								////////						
//	////////////////////////////////////////////////////////////////////////////////////////
//}
